/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import modelo.Pregunta;
import modelo.Respuesta;

/**
 *
 * @author alumneDAM
 */
public class PersiPregunta {

    //mirar base datos orden result set select respuestas
    private ConexionBD conex = new ConexionBD();
    private Connection con;

    //numeroPreguntas es el numero de preguntas para hacer el random
    private int numeroPreguntas;

    public void numeroPreguntas(String color) {

        try {
            this.conex.conexion();
            this.con = conex.getCon();

            Statement s = con.createStatement();
            ResultSet rs;

            rs = s.executeQuery("SELECT COUNT(*) FROM pregunta WHERE color LIKE '" + color + "'");

            while (rs.next()) {
                numeroPreguntas = rs.getInt(1);
            }

            s.close();
            rs.close();
            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }

    public Pregunta preguntaAleatoria(String color, String preguntas) {
        Pregunta pregunta = null;
        this.numeroPreguntas(color);

        try {
            this.conex.conexion();
            this.con = conex.getCon();

            Statement s = con.createStatement();
            ResultSet rs;
            if (preguntas==null){
                preguntas="0";
            }
              String sql="SELECT * FROM pregunta WHERE color LIKE '" + color + "' AND id_pregunta NOT IN (" + preguntas + ")";

            rs = s.executeQuery(sql);

            int numeroAleatorio = (int) (Math.random() * numeroPreguntas) + 1;

            while (rs.next()) {
                if (rs.getRow() == numeroAleatorio) {
                    pregunta = new Pregunta(rs.getInt(1), rs.getString(2), rs.getInt(3), rs.getString(4));
                    break;
                }
            }

            s.close();
            rs.close();
            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        } finally {
            return pregunta;
        }
    }

    public ArrayList<Respuesta> respuestas(int idPregunta) {
        ArrayList<Respuesta> respuestas = new ArrayList<>();

        try {
            this.conex.conexion();
            this.con = conex.getCon();

            Statement s = con.createStatement();
            ResultSet rs;

            rs = s.executeQuery("SELECT * FROM respuesta WHERE id_pregunta='" + idPregunta + "'");

            while (rs.next()) {
                respuestas.add(new Respuesta(rs.getInt(1), rs.getString(2), rs.getInt(3)));
            }

            s.close();
            rs.close();
            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        } finally {
            return respuestas;
        }
    }
}
